﻿#pragma once

#include "strategybase_global.h"
#include <deque>
#include "MarketDataBase.h"
#include <map>
#include <string>
#include "MetricesData.h"
#include <list>

// 策略数据收集 StrageViewData
class STRATEGYBASE_EXPORT MetricsDataGather
{
public:
	MetricsDataGather();
	~MetricsDataGather();

	// 添加K线数组
	void AddKItems(const std::deque<MData::KLineItem> &pKVec);
	// 添加K线
	void AddKItem(const MData::KLineItem &pKItem);
	// 返回K线数组
	const std::deque<MData::KLineItem> &GetKItems() { return m_kItems; }
	// 返回K线参数线
	const std::map<std::string, std::shared_ptr<MetData::MetriceBase>> &GetMetrices() { return m_metrices; }
	// 添加参数线
	void AppendMetrice(std::shared_ptr<MetData::MetriceBase> pMetrice);

private:
	std::deque<MData::KLineItem> m_kItems;
	// 各类指标
	std::map<std::string, std::shared_ptr<MetData::MetriceBase>> m_metrices;
};

